import com.mysql.cj.jdbc.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

public class JDBCDemo {
    public static void main(String[] args) throws SQLException {
        // 接下来通过 jdbc 进行一个简单的 插入数据的操作。
        // jdbc 代码 对于初学者来说，有一点“繁琐”
        // 步骤会比较多


        Scanner scanner = new Scanner(System.in);
        // 1. 创建 “ 数据源 ”， DataSource
        DataSource dataSource = new MysqlDataSource();
        // Url 唯一资源定位符
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java111?characterEncoding = utf8 & useSSL = false");//向下转型
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("120510");

        //2.和数据库服务器建立连接
        Connection connection = dataSource.getConnection();

        //3.能够构造一个操作数据库的 sql 语句
        System.out.println("请输入学号：");
        int id = scanner.nextInt();
        System.out.println("请输入姓名：");
        String name = scanner.next();
//        String sql = "insert into test values(" + id + ",'" + name +"')";
        String sql = "insert into test values(?,?)";

        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        preparedStatement.setInt(1,id);
        preparedStatement.setString(2,name);

        //4.执行 sql ，把刚才解析好的语句发给数据库服务器了
        int n = preparedStatement.executeUpdate();
        System.out.println("n = " + n);

        //5.收尾，释放资源
        // 主要示释放语句对象 和 连接对象
        preparedStatement.close();
        connection.close();

    }
}
